<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>js数组之创建</title>
</head>
<body>
  <ul>
    <li>可使用new Array或[]来创建数组, 当跨索引值赋值时，中间的数据项会自动填充为undefined, 数组长度为当前索引值+1</li>
    <li>当使用new Array来创建数组时，当构造函数传入多个参数时将正常构建数组; 当只有一个参数时，将创建指定长度数据项为undefined的数组</li>
    <li>当传入一个参数时，希望能产生只有一个值的数组，使用Array.of或[]来创建</li>
  </ul>
  <script>
    const nums1 = [1]
    nums1[3] = 4
    console.log(nums1)           // [1, undefined, undefined, 4]
    console.log(nums1.length)    // 4
    console.log(nums1[1])        // undefined
    const nums2 = new Array(1, 2, 3, 4)
    console.log(nums2)           // [1, 2, 3, 4]
    const nums3 = new Array(4)
    console.log(nums3)           // [undefined, undefined, undefined, undefined]
    const nums4 = Array.of(4)
    console.log(nums4)           // [4]
  </script>
</body>
</html>